package org.work;

import java.util.List;
/**
 * Ams目前的需求
 * @author liubz
 *
 */
public interface GetAppList {
	/**
	 * @detail 获取指定分类下全部应用列表
	 * 
	 * @param device 设备相关信息
	 * @param appTypeId 分类Id(-1:返回全部应用列表)
	 * @param sortType 排序类型（1.最新；2.最热） 
	 * @param isPay 是否付费
	 * @param pageSize 每页显示记录数
	 * @param locate 地域
	 * 
	 * @return AppList<lcaid>(返回结果中必须包含总记录数)
	 */
	List<?> getApplicationList(String device,long appTypeId,String sortType,boolean isPay,int pageSize,String locate);
	
	
	/**
	 * @detail 获取适合当前设备的应用详情
	 * 
	 * @param device 设备相关信息
	 * @param appid 应用ID(唯一能确定一个应用--不区分版本的id标识)
	 * @param packageName 应用包名（作用等同于appId）
	 * @param locate 地域
	 * 
	 * @return AppInfo
	 */
	Object getApplicationInfo(String device,long appid,String packageName,String locate);
	
	/**
	 * @detail 获取指定应用适合当前设备的所有历史版本列表
	 * 
	 * @param device 设备相关信息
	 * @param appid 应用ID(唯一能确定一个应用--不区分版本的id标识)
	 * @param packageName 应用包名（作用等同于appId）
	 * @param locate 地域
	 * 
	 * @return AppInfo
	 */
	List<?> getApplicationListByAppId(String device,long appid,String packageName,String locate);
	
	/////////////////////////////////以下接口比较类似，可以合并为一个接口//////////////////////////////////
	/**
	 * @detail 获取推荐应用列表
	 * 
	 * @param device 设备相关信息
	 * @param recommendList<appid>推荐应用ID列表 ??????是否必须
	 * @param sortType 排序类型（？） 
	 * @param pageSize 每页显示记录数
	 * @param locate 地域
	 * 
	 * @return AppList<lcaid>(返回结果中必须包含总记录数)
	 */
	List<?> getApplicationRecommendList(String device,List recommendList,String sortType,int pageSize,String locate);
	
	/**
	 * @detail 获取排行应用列表
	 * 
	 * @param device 设备相关信息
	 * @param topList<appid>排行应用ID列表 ??????是否必须
	 * @param sortType 排序类型（？） 
	 * @param isPay 是否付费
	 * @param pageSize 每页显示记录数
	 * @param locate 地域
	 * 
	 * @return AppList<lcaid>(返回结果中必须包含总记录数)
	 */
	List<?> getApplicationTopList(String device,List topList,String sortType,boolean isPay,int pageSize,String locate);
	
	/**
	 * @detail 获取更新应用列表
	 * 
	 * @param device 设备相关信息
	 * @param installAppList<appid || packageName,versionCode,isLiteVersion> 用户已安装的全部应用列表
	 * @param sortType 排序类型（？） 
	 * @param pageSize 每页显示记录数
	 * @param locate 地域
	 * 
	 * @return AppList<lcaid>(返回结果中必须包含总记录数)
	 */
	List<?> getApplicationUpdateList(String device,List installAppList,String sortType,int pageSize,String locate);
	
}
